package com.jasperframework.boot.common.utils;

import java.text.DecimalFormat;
import java.text.NumberFormat;

/**
  * <p> 数字格式化工具类 </p>
  *
  * @site https://miliqkdoc.motopa.cn/
  * @author daizhao
  * @date 2022/12/12 12:12
  */
public class NumberFormatUtil {

    public static final String DECIMALFORMAT_1 = "#.##";
    public static final String DECIMALFORMAT_2 = "#.#";

    /**
     * <p>保留2位小数 格式化</p>
     *
     * @param data 被格式化的小数
     * @return java.lang.String 格式化后的字符串
     * @author daizhao  2018/11/6 15:32
     */
    public static String decimalPlace2Format(Double data) {
        DecimalFormat df = new DecimalFormat("#.##");
        return df.format(data);
    }

    /**
     * <p>保留指定格式的小数位 格式化</p>
     *
     * @param data 被格式化的小数
     * @return java.lang.String 格式化后的字符串
     * @author daizhao  2018/11/6 15:32
     */
    public static String decimalPlace2Format(Double data, String pattern) {
        DecimalFormat df = new DecimalFormat(pattern);
        return df.format(data);
    }

    /**
     * <p>计算2个数的百分比</p>
     *
     * @param num1 参数1
     * @param num2 参数2
     * @return java.lang.String
     * @author daizhao  2019/8/6 12:32
     */
    public static String getRate(long num1, long num2) {
        if (num2 == 0) {
            return "0";
        }
        NumberFormat numberFormat = NumberFormat.getInstance();
        // 设置精确到小数点后2位
        numberFormat.setMaximumFractionDigits(2);
        return numberFormat.format((float) num1 / (float) num2 * 100);
    }
}
